Asm.js

asm.js
Auteur Mozilla
Influencé par JavaScript
Système d'exploitation multi plate-forme
Licence Licence Apache[1]Voir et modifier les données sur Wikidata
Site web asmjs.org

asm.js est un langage intermédiaire constituant un sous-ensemble du langage JavaScript. Il permet une amélioration importante des performances pour les applications web écrites en langage à typage statique avec gestion manuelle de la mémoire (comme le C) puis converti en JavaScript par un compilateur source à source. Asm.js ne vise à améliorer les performances que pour un tel code compilé depuis un autre langage, pas celles de code JavaScript écrit à la main.

Il est destiné à obtenir des performances proches de celles obtenues par du code natif en limitant les fonctionnalités du langage à celles tirant parti de la compilation anticipée. En utilisant un sous-ensemble du langage JavaScript, asm.js est déjà supporté par l'ensemble des navigateurs web[2] contrairement aux alternatives comme Google Native Client. Le navigateur Mozilla Firefox fut le premier navigateur à implémenter les optimisations spécifiques asm.js à partir de la version 22[3]. Les optimisations du moteur JavaScript V8 présent dans Chrome 28 ont permis de doubler les performances obtenues sur le benchmark asm.js par rapport à la précédente version de Chrome[4].

Le projet Emscripten propose des outils permettant de compiler du code C, C++ (ou n'importe quel autre langage pouvant être converti en LLVM) en code asm.js[5].

  1. « https://api.github.com/repos/dherman/asm.js » (consulté le )
  2. (en) « asm.js - Frequently Asked Questions »,
  3. (en) « Firefox 22.0 release notes », Mozilla (consulté le )
  4. (en) « Chrome 28 Beta: A more immersive web, everywhere », Google (consulté le )
  5. (en) https://github.com/kripken/emscripten

Developed by StudentB